return 0;
}
-int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info,
- uint32_t domid, libxl__domain_build_state *state)
+int libxl__domain_build(libxl__gc *gc,
+ libxl_domain_build_info *info,
+ libxl_device_model_info *dm_info,
+ uint32_t domid,
+ libxl__domain_build_state *state)
{
char **vments = NULL, **localents = NULL;
struct timeval start_time;
gettimeofday(&start_time, NULL);
if (info->hvm) {
- ret = libxl__build_hvm(gc, domid, info, state);
+ ret = libxl__build_hvm(gc, domid, info, dm_info, state);
if (ret)
goto out;
free(dm_info->saved_state);
dm_info->saved_state = NULL;
}
- ret = libxl__domain_build(gc, &d_config->b_info, domid, &state);
+ ret = libxl__domain_build(gc, &d_config->b_info, dm_info, domid, &state);
}
if (ret) {
ret = libxl__domain_make(gc, &c_info, &domid);
if (ret)
goto out_free;
- ret = libxl__domain_build(gc, &b_info, domid, &state);
+ ret = libxl__domain_build(gc, &b_info, info, domid, &state);
if (ret)
goto out_free;
}
static const char *libxl__domain_firmware(libxl__gc *gc,
- libxl_domain_build_info *info)
+ libxl_domain_build_info *info,
+ libxl_device_model_info *dm_info)
{
return libxl__abs_path(gc,
info->u.hvm.firmware ? : "hvmloader",
}
int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
- libxl_domain_build_info *info, libxl__domain_build_state *state)
+ libxl_domain_build_info *info,
+ libxl_device_model_info *dm_info,
+ libxl__domain_build_state *state)
{
libxl_ctx *ctx = libxl__gc_owner(gc);
int ret, rc = ERROR_INVAL;
domid,
(info->max_memkb - info->video_memkb) / 1024,
(info->target_memkb - info->video_memkb) / 1024,
- libxl__domain_firmware(gc, info));
+ libxl__domain_firmware(gc, info, dm_info));
if (ret) {
LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm building failed");
goto out;
_hidden int libxl__build_pv(libxl__gc *gc, uint32_t domid,
libxl_domain_build_info *info, libxl__domain_build_state *state);
_hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
- libxl_domain_build_info *info, libxl__domain_build_state *state);
+ libxl_domain_build_info *info,
+ libxl_device_model_info *dm_info,
+ libxl__domain_build_state *state);
_hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
const char *old_name, const char *new_name,
/* from xl_create */
_hidden int libxl__domain_make(libxl__gc *gc, libxl_domain_create_info *info, uint32_t *domid);
-_hidden int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info,
+_hidden int libxl__domain_build(libxl__gc *gc,
+ libxl_domain_build_info *info,
+ libxl_device_model_info *dm_info,
uint32_t domid,
libxl__domain_build_state *state);